package com.shujia.day03;

public class Demo06Function {
    public static void main(String[] args) {
        /*
           TODO 方法/函数
                作用:
                    对于代码中重复出现的代码,进行包装,形成一个方法,在需要方法代码时,直接调用即可
                格式:
                    修饰符 返回值类型 方法名称(参数列表){
                        方法体(方法执行时的代码)
                        return 值; 如果有返回值的情况下
                    }
                修饰符: 用于修饰当前方法的访问权限,以及方法的类型  暂时使用 public static
                返回值类型: 基本数据类型 / 引用类型  如果没有返回值此时需要使用 void 关键字 表示
                方法名称: 要注意名称定义规则 首个单词首字母小写 其他单词首字母大写 单词间可以直接拼接
                参数列表: 可以给定多个参数  格式: 参数类型 参数名
                    -> 1.形参  在参数列表中定义的 定义时,没有具体值 用于指代一个变量
                    -> 2.实参  在方法调用时,给方法的参数进行传入值称为实参
                方法体:  具体的代码,可以直接调用其他方法
                return: 如果方法没有返回值,可以不需要添加 对于Java来说 return 返回值需要和返回值类型相匹配,每次执行返回一个值

                注意:
                    1.方法调用,可以直接使用方法名(参数值)
                    2.方法在传参时,需要类型想对应
                    3.方法与方法是平级关系，不能嵌套定义
                    4.方法调用的时候不用在传递数据类型
                    5.如果方法有明确的返回值，一定要有return带回一个值

         */

        printFun();
        int funRes = addFun(4, (short) 5);
        System.out.println("funRes:" + funRes);

        String str = strAddFun(3, (short) 4);
        System.out.println(str);

        int a = 3;
        short b = 4;
        String s = strAddFun(a, b);

        // 方法内不能再定义方法
//        public static int addFun1(int a, short b) {
//            return a + b;
//        }
    }

    public static void printFun() {
        System.out.println("这是一个无参无返回值的函数");
    }

    public static int addFun(int a, short b) {
        return a + b;
    }

    public static String strAddFun(int a, short b) {
        return a + b + "";
    }
}
